__file__ = 'A17.py'
__author__ = 'Jerry Liu'
__date__ = '2016-04-15'

"""
    问题： 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中，如下所示：

        <?xml version="1.0" encoding="UTF-8"?>
        <root>
        <students>
        <!--
            学生信息表
            "id" : [名字, 数学, 语文, 英文]
        -->
        {
            "1" : ["张三", 150, 120, 100],
            "2" : ["李四", 90, 99, 95],
            "3" : ["王五", 60, 66, 68]
        }
        </students>
        </root>
"""

from openpyxl.reader.excel import load_workbook
from xml.dom.minidom import Document

def getdata(path):
    wb = load_workbook(path)
    # 读取第一个sheet
    snames = wb.get_sheet_names()
    sheet = wb.get_sheet_by_name(snames[0])
    # 创建xml
    doc = Document()
    # 创建根元素
    root = doc.createElement('root')
    doc.appendChild(root)
    # 创建学生列表元素
    stus = doc.createElement('students')
    root.appendChild(stus)
    for line in range(sheet.get_highest_row()):
        line += 1
        # 创建学生元素
        stu = doc.createElement('student')
        stus.appendChild(stu)
        # 创建学生姓名元素
        name = sheet.cell(row=line, column=1).value
        stu_name = doc.createElement('Name')
        stu_name.appendChild(doc.createTextNode(name))
        stu.appendChild(stu_name)
        # 创建英文成绩
        yy_value = sheet.cell(row=line, column=2).value
        yy_name = doc.createElement('English')
        yy_name.appendChild(doc.createTextNode(str(yy_value)))
        stu.appendChild(yy_name)
        # 创建语文成绩
        yw_value = sheet.cell(row=line, column=3).value
        yw_name = doc.createElement('Chinese')
        yw_name.appendChild(doc.createTextNode(str(yw_value)))
        stu.appendChild(yw_name)
        # 数学语文成绩
        sx_value = sheet.cell(row=line, column=4).value
        sx_name = doc.createElement('Math')
        sx_name.appendChild(doc.createTextNode(str(sx_value)))
        stu.appendChild(sx_name)

    # 保存文件
    f = open("d://student.xml", "w")
    doc.writexml(f)
    f.close()

if __name__ == '__main__':
    getdata('d://student.xlsx')
